1. Field of the Invention
The present invention is related to digital color image reproduction systems and more particularly to color calibration of such systems. Typically such systems include an input device such as a scanner for scanning a color image and for producing scanner color signals representing that image, an output device such as a printer for reproducing the color image, and a digital image processor for transforming the scanner color signals into printer color signals. In particular, the present invention relates to a system and method for improving reproduction quality when a scanner and printer are combined to form a copy unit. The present invention also relates to a software program for implementing the method for improving copy quality and media on which the program is recorded or carried.
2. Description of the Related Art
The generation of color documents can be thought of as a two step process: first, the generation of the image by scanning an original document with a color image input terminal or scanner or, alternatively, creating a color image on a work station operated with a color image creation program; and secondly, printing of that image with a color printer in accordance with the colors defined by the scanner or computer generated image.
Each color peripheral device such as a color scanner or a color printer uses a device-dependent color-coordinate system to specify colors. These coordinates are often specified in some color space that is most suitable for mapping the color coordinates to the color-generation mechanism of the device. The term color space refers to an N-dimensional space in which each point in the space corresponds to a color. For example, an RGB color space refers to a three-dimensional device color space in which each point in the color space is formed by additive amounts of red (R), green (G) and blue (B) colorants. Scanner output is commonly transformed to a color space of tristimulus values, i.e., RGB (red-green-blue). Commonly, these values are a linear transformation of the standard XYZ coordinates of CIE color space, or a corrected transform of those values.
In the case of computer generated images, color defined by the user at the user interface of a workstation can be defined initially in a standard color space of tristimulus values. These colors are defined independently of any particular device, and accordingly reference is made to the information as being xe2x80x9cdevice independentxe2x80x9d.
Printers commonly have an output which can be defined as existing in a color space called CMYK (cyan-magenta-yellow-key or black) which is uniquely defined for the printer by its capabilities and colorants, i.e. it is a device-dependent color space. Printers operate by the addition of multiple layers of ink or colorant in layers on a page. The response of the printer tends to be relatively non-linear. These colors are defined for a particular device, and accordingly reference is made to the information as being xe2x80x9cdevice dependentxe2x80x9d. Thus, while a printer receives information in a device independent color space, it must convert that information to print in a device dependent color space, which reflects the gamut or possible range of colors of the printer. Printers and other image rendering devices may use more or less than the above-mentioned 4 color channels (i.e., c, m, y, and k) to represent color.
There are many methods of conversion between color spaces, all of which begin with the measurement of printer (or scanner) response to certain input values (or colors). Commonly, a printer is driven with a set of input values reflecting color samples throughout the printer gamut, and the color samples are printed in normal operation of the printer. As previously noted, most printers have non-linear response characteristics.
The information derived is typically placed into three-dimensional look up tables (LUTs) stored in a memory, such as a read-only-memory (ROM) or random-access-memory (RAM). The look up table relates input color space to output color space. The look up table is commonly a three dimensional table since color is defined with three variables. The three variables used to index the LUT correspond to tristimulus values that may represent RGB or a standard color space such as CIE XYZ. RGB space, e.g. for a scanner or computer, is typically defined as three dimensional with black at the origin of a three dimensional coordinate system 0, 0, 0, and white at the maximum of a three dimensional coordinate system. For example, for a 24-bit color system (8-bits/color), white would be located at 255, 255, 255. Each of the three axes radiating from the origin point therefore respectively define red, green, and blue. In the 24-bit system suggested, there will be, however, over 16 million possible colors (2563). There are clearly too many values for a 1:1 mapping of RGB to CMYK. Therefore, the look up tables consist of a set of values which could be said to be the intersections (lattice points, nodes, etc.) for corners of a set of cubes mounted on top of one another. Colors falling within each cubic volume can be interpolated from the nodes forming the cube, through many methods including tri-linear interpolation, tetrahedral interpolation, polynomial interpolation, linear interpolation, and any other interpolation method depending on the desired accuracy of the result, behavior of the function being sampled, and computational cost.
It would be very easy to index (map) device dependent color values or specifications to device independent color values, but that is not what is required. Rather, device independent specifications (i.e. colors specified in a device independent color space) must be mapped to device dependent specifications (i.e. corresponding colors in the device dependent color space). Several problems arise. Of course, the primary problem is that the printer response is not a linear response, and the inverse mapping function may not be unique especially when the dimensions of the input and output color spaces are different. A second problem is that the color space, and therefore the coordinates defined in the color space must be maintained as a uniform grid for maximum efficiency of some interpolation methods.
Accordingly, a multidimensional look up table (LUT) may be constructed which puts device independent input values into a predictable grid pattern. One method of accomplishing this requirement is by an interpolation process referred to as weighted averaging and another method is inverse tetrahedral interpolation.
The technique or method for producing the LUT is selected according the best result that can be obtained for the particular device. For example in a particular printer it may be found that the weighted averaging technique produced a table which gave good color reproduction in one region of color space (the light colors), but not in another (the dark colors). The tetrahedral inversion technique may produce just the complement of this, i.e., it may give good color reproduction where the weighted average technique did not (the dark colors), and give poorer color reproduction of colors where the weighted average technique gave good color reproduction (the light colors).
Similar to the above problem, it has been noted that often, after a change in process parameters due to time, change of materials, refilling toner, etc., a change in calibration is required only in a portion of the overall color gamut of a printer. Re-calibration of the entire space is costly in terms of processing time. It is desirable to only re-calibrate a portion of the color space, or alternatively, to use the best portions of the color space mapping.
Further, we have found that when an independently calibrated scanner is put together with an independently calibrated printer, certain reproduction artifacts turn up in the copy. These include contouring artifacts that appear in certain types of copied images, such as skin tones and sky tones. Such artifacts are quite common if the input and output devices have been calibrated using different standard spaces, e.g., a scanner may be calibrated to be linear with respect to luminance while a printer may be calibrated to be linear with respect to ink density. This problem is addressed in commonly assigned application Ser. No. 09/400,787, filed on the same date as the present application, and entitled xe2x80x9cColor Table Manipulations For Contour Reductionxe2x80x9d, which application is incorporated herein by reference in its entirety.
We have found also that combining an independent scanner with an independent printer can result in slower throughput than a conventional copier due to the intercommunication paths that comprise physical cables connecting the scanner, printer and possibly a physically separate processing unit interfacing the scanner and printer. To increase the throughput speed, we scan at a resolution, e.g. 300 dpi (dots-per-inch), that is lower than a comparable conventional copier, which may scan at 400 dpi, for example. While this increases the speed at which the image can be processed, it may result in a degradation of certain high frequency components, e.g. small text, in the image. In addition, we have found that certain colors appear in the background that should actually appear white. This can sometimes result from colors bleeding through from the opposite side of the page when it is scanned.
Therefore, it is an object of the present invention to overcome the aforementioned problems.
It is an object to provide a calibration system that effectively calibrates an input device/output device system where the input device and output device have been separately calibrated.
Another object is to provide an effective system for revising the color transformation LUTs after the input and output device are combined for only those colors that are used to represent text or a white background, while maintaining the original calibration for the balance of the color space.
A further object of the invention is to provide an effective system for improving text reproduction and/or white background reproduction when a particular input device is combined with a particular output device.
Yet a further object of the invention is to provide a software program for performing the method of the present invention. The software program can be stand-alone, resident on the image processing unit of the present invention, recorded on media readable by the image processing unit or embodied on a carrier wave that can be input to the image processing unit.
A exemplary color reproduction system of the present invention is shown in FIG. 2 and includes a scanner 18, a printer 30 and an image processing unit 14, which, in part, interfaces the scanner and printer and controls the data transfer through the system. The scanner and printer are connected to the processing unit by communication paths which physically comprise cable connections such as a Small Computer System Interface (SCSI) bus 14A, and a parallel port bus 14B. These communication links tend to slow the throughput of the system. In order to speed up the system, the scanner is operated at 300 dpi, for example, in contrast to the 400 dpi typically employed in the scanning unit of an integrated color copier. The actual resolution will vary but will typically be lower in the system of FIG. 2 than in an integrated copier that is comparable in speed. This lower scanning resolution reduces the amount of data that passes through the system and thereby increases the speed with which an image can be processed. However, one drawback is that small text may not be accurately reproduced and the text portion of a scanned document may be degraded. In addition, scanners inherently act as low pass filters and may degrade the high frequency text. Therefore, text enhancement schemes are typically provided in the processing unit. Normally, these involve scanning the entire image and parsing it in to text regions and image regions. The text regions are high-pass filtered to sharpen and improve the text quality. Further, background is enhanced by suppressing bleed-through artifacts. Unfortunately, these processes are computationally intensive and burden and slow the image processing unit 14.
The present invention is intended to provide a fast method of text enhancement by manipulating the color transformation tables rather than scanning and filtering the entire image. In effect, we introduce contours in the color table for only those colors that are found in text or background but not for those colors that are found in image. We do this by first looking at the scanner color space and marking out xe2x80x9ctext colorsxe2x80x9d, i.e. dark, low saturation colors found in the lower corner of the color space. This is done empirically by first choosing a set of text colors and then in the color transformation table we map all identified text colors to a selected color, e.g. black, i.e. in a 8-bit per component RGB system, the red, green and blue color values would all be 0; the brightness would be 0 and saturation 0. Then we scan standard color charts to see the effect of our initial choice. When we review the result of the scanned color chart we find that certain of our choices have resulted in xe2x80x9cimage colorsxe2x80x9d, e.g. dark blue, that have been converted to black. We then assign those colors as xe2x80x9cimagexe2x80x9d rather than xe2x80x9ctextxe2x80x9d. This is an experimental process that depends somewhat on the person reviewing the results of the scanned color charts.
The result of the initial part of our process is a set of boundaries in the scanner color space which define text colors that we would like to make darker when they are encountered in a scanned page and image colors that we would like to maintain when they are encountered. These boundaries will overlap in some areas. We then, in effect, form two look-up-tables (LUTs) as shown in FIG. 3. One is a text transformation table for text colors CT and the other is an image transformation table for image colors CI. The text transformation table maps text colors toward darker, less saturated tones. The image transformation table maps image colors in a normal color-matching fashion, i.e., according to the original color space transformation.
These two tables are spliced to form a final color transformation table. As mentioned, the text and image boundaries overlap for some portions of the color space. This is illustrated in FIG. 4. The splicing of the two tables occurs as follows. For an encountered color, e.g. C1, that falls exclusively in the text region, it is replaced by a corresponding darker, less saturated color in the text transformation. For a color, e.g. C2, falling exclusively in an image region, it is mapped to a matched color by the image transformation table. For a color, e.g. C3, that falls in the intersection of the text region and one or more of the image regions, the color transformation is a linear combination of the two or more tables. In general, the closer the color is to the center of the text region the more it will be effected by the text transformation. The linear combination is formed by a splice function that weights the contribution from the text and image tables. This weighting can be altered to give sharp or smooth transitions.
The effect of the present invention is to improve the reproduction quality of text without slowing the throughput of the system. Text is enhanced on-the-fly as it passes through the color transformation regions rather than through a separate processing/filtering operation. The text enhancement of the present invention may also be used to complement normal text enhancement processing.
Alternately, or in combination, we apply the same process to xe2x80x9cwhite colorsxe2x80x9d, i.e. those colors in our sample images that appear in the background and which we want to be white in our replicated image. We do this by first looking at the scanner color space and marking out xe2x80x9cwhite colorsxe2x80x9d, i.e. bright, low saturation colors found in the upper corner of the color space. Again, this is done empirically by first choosing a set of white colors and then in the color transformation table we map all identified white colors to a selected color, e.g. white, i.e. in a 8-bit per component RGB system, the red, green and blue color values would all be 255; the brightness value would be 255 and saturation 0. The balance of the process corresponds to the text color process as described above.
Other objects and attainments together with a fuller understanding of the invention will become apparent and appreciated by referring to the following description and claims taken in conjunction with the accompanying drawings.